package groep1.graph.graphstrategy;

import groep1.graph.GraphMediator;

/**
 * The colleague of the graph strategies.
 * 
 * @author Niels Billen
 * @version 0.1
 * @since 0.1
 */
public interface GraphStrategy {
	/**
	 * Sets the mediator for this strategy.
	 * 
	 * @param mediator
	 *            The mediator for this strategy.
	 * @throws NullPointerException
	 *             When the given mediator is null.
	 * @throws IllegalStateException
	 *             When the given mediator does not have this strategy as it's
	 *             strategy.
	 */
	public void setMediator(GraphMediator mediator)
			throws NullPointerException, IllegalStateException;

	/**
	 * Returns the mediator of this strategy.
	 * 
	 * @return the mediator of this strategy.
	 */
	public GraphMediator getMediator();
}
